#ifndef __VIEWER_H__
#define __VIEWER_H__
// #include <pangolin/pangolin.h>
#include <sophus/se3.hpp>
#include "../include/Map.hpp"
#include "../include/Frame.hpp"
#include "../include/MapPoint.hpp"
#include "../include/MapAtlas.hpp"
using namespace std;
using namespace Eigen;
typedef vector<Sophus::SE3<double, 0>, aligned_allocator<Sophus::SE3<double, 0>>> VecSE3;
typedef vector<Vector3d, aligned_allocator<Vector3d>> VecVec3d;
namespace ORBSLAM
{
    class Viewer
    {
    private:
        /* data */
        vector<KeyFrame *> mvp_keyframe;
        vector<MapPoint *> mvp_mpt;
        Map * mp_map;
        MapAtlas* mp_mapatlas;

        bool mb_adjust_scale;
        float mf_s;

    public:
        Viewer(/* args */);
        ~Viewer();
        void Set_mapatlas(MapAtlas* p_mapatlas);
        void static showTrajectoryandpoints(Map *p_map);
        void Run();
        void Draw_pose_trajectory_points();
    };

} // namespace ORNSLAM

#endif // __VIEWER_H__